package com.kingschan.jeasytag.core.parse.diyparse;

import javax.servlet.jsp.PageContext;
import org.json.JSONArray;
import org.json.JSONObject;

import com.kingschan.jeasytag.container.EasyTagContainer;
import com.kingschan.jeasytag.container.impl.EasyTagContainerImpl;
import com.kingschan.jeasytag.core.format.JeasyTagFormat;
import com.kingschan.jeasytag.tag.RootTag;
import com.kingschan.jeasytag.tag.power.ExportTag;
import com.kingschan.util.lang.StringUtil;
/**
 *ExportTag special parse class
 *@author kingschan
 *date:2013-4-18
 */
public class ExportTagParse implements JeasyTagFormat {

	private EasyTagContainer container=EasyTagContainerImpl.getInstance();
	@Override
	public String format(RootTag tag, PageContext context) throws Exception {
		if (tag instanceof ExportTag==false) {
			throw new  Exception(tag.getClass().getName()+" not instanceof exporttag!");			
		}
		ExportTag obj = (ExportTag) tag;
		StringBuffer sb = new StringBuffer();
		sb.append("<form class=\"exportTag\" id=\"").append(StringUtil.ConvertNullStr(tag.getId())).append("\" name=\"").append(StringUtil.ConvertNullStr(tag.getName())).append("\"")
		.append(" action=\"").append(obj.getAction()).append("\"").append(" method = \"post\" >")
		.append("<input type=\"hidden\" name=\"choosefield\" value=\"").append(StringUtil.ConvertNullStr(obj.getChoosefield())).append("\" />")
		.append("<input type=\"hidden\" name=\"title\" value=\"").append(StringUtil.getEncriptCode(StringUtil.replaceSpaceLine(obj.getTitle()),container.getApplictionKey())).append("\" />")
		.append("<input type=\"hidden\" name=\"disablecloums\" value=\"").append(StringUtil.ConvertNullStr(StringUtil.getEncriptCode(obj.getDisablecloums(),container.getApplictionKey()))).append("\" />")
		.append("<input type=\"hidden\" name=\"c\" value=\"e\" />")
		;
		if(null!=obj.getInitalparams()){
			JSONArray jsons = new JSONArray(obj.getInitalparams());
			for (int i = 0; i < jsons.length(); i++) {
				JSONObject json=jsons.getJSONObject(i);
				sb.append("<input type=\"hidden\" name=\""+json.getString("name")+"\" value=\"").append(StringUtil.ConvertNullStr(json.getString("value"))).append("\" />");
			}
		}
		sb.append("</form>");
		//tag.getRoottag().appendHTML(sb.toString());
		System.out.println(StringUtil.ConvertNullStr(obj.getTitle()));
		return sb.toString();
	}

	
}
